// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.statement.SQLInsertStatement;
// import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerObject;
// import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerOutput;
// import com.alibaba.druid.sql.dialect.sqlserver.ast.SQLServerTop;
// import com.alibaba.druid.sql.dialect.sqlserver.visitor.SQLServerASTVisitor;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;
#pragma once
#include "../../../../ast/statement/SQLInsertStatement.h"
#include "../SQLServerObject.h"

class SQLServerInsertStatement : public SQLInsertStatement, virtual public SQLServerObject
{
public:
  BOOL_ptr defaultValues;

  SQLServerTop_ptr top;

  SQLServerOutput_ptr output;

  SQLServerInsertStatement();
  SHAREDOBJECT(SQLServerInsertStatement);

  void cloneTo(SQLServerInsertStatement_ptr x);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  // @Override
  void accept0(SQLServerASTVisitor_ptr visitor);

  BOOL_ptr isDefaultValues();

  void setDefaultValues(BOOL_ptr defaultValues);

  SQLServerOutput_ptr getOutput();

  void setOutput(SQLServerOutput_ptr output);

  SQLServerTop_ptr getTop();

  void setTop(SQLServerTop_ptr top);

  SQLObject_ptr clone();
};
